The present invention relates generally to data transport, and more particularly to dynamic data compression.
Digital data transmission is the physical transfer of a digital bit stream over a point-to-point or point-to-multipoint communication channel. The communication channels may include copper wires, optical fiber, wireless communication, storage media, and computer buses. Examples of environments which typically see high levels of data transmissions are data warehouse environments and synchronous mirroring in database replication environments. A data warehouse is a system or combination of systems used to integrate current and historical data from one or more sources to perform data analysis and create reports, such as quarterly and annual comparisons. Typical workloads in data warehouse environments are intensive for network hardware, with operations such as large data loads and index builds, creation of materialized views, and queries over large volumes of data.
Database mirroring is used to increase the availability of databases in the event of an outage or disaster. With automatic failover, a detected outage quickly brings up a standby copy of the database with little to no data loss. Synchronous mirroring ensures all data is written to both databases, however, the cost is increased network traffic and transaction latency. With such large amounts of data being transmitted, bandwidth is important in both data warehouse and database replication environments. Some methods used to improve throughput or guarantee desired levels of bandwidth are bandwidth throttling and quality of service (QoS).
Bandwidth throttling is the intentional slowing of certain network data to regulate network traffic and minimize bandwidth congestion. Throttling can be used to limit a user's upload or download rates on programs such as video streaming. In the field of computer networking, QoS is the ability to provide different priority to different applications, users, or data flows, or to guarantee a certain level of performance to a data flow. For example, a pre-defined bit rate, delay, jitter, packet dropping probability and/or bit error rate may be guaranteed.